From d49a0c52bc137b0b9e7dd5b4afd645b3b4dc60ab Mon Sep 17 00:00:00 2001 From: Soeren Sandmann Date: Sat, 21 Feb 2004 18:20:59 +0000 Subject: [PATCH] Bug 132502 Sat Feb 21 19:18:26 2004 Soeren Sandmann Bug 132502 * gtk/gtkmenu.c (gtk_menu_motion_notify): Make sure we pop down if we enter a non-selectable menu item. * gtk/gtkmenu.c (gtk_menu_leave_notify): Don't pop a submenu when the user has left the item. --- ChangeLog | 10 ++++++++++ ChangeLog.pre-2-10 | 10 ++++++++++ ChangeLog.pre-2-4 | 10 ++++++++++ ChangeLog.pre-2-6 | 10 ++++++++++ ChangeLog.pre-2-8 | 10 ++++++++++ gtk/gtkmenu.c | 19 ++++++++++++++++++- 6 files changed, 68 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d5c84e432b..318b4ec336 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Sat Feb 21 19:18:26 2004 Soeren Sandmann + + Bug 132502 + + * gtk/gtkmenu.c (gtk_menu_motion_notify): Make sure we pop down + if we enter a non-selectable menu item. + + * gtk/gtkmenu.c (gtk_menu_leave_notify): Don't pop a submenu + when the user has left the item. + Sat Feb 21 17:57:35 2004 Soeren Sandmann * gtk/docs: Commit auto-generated changes diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index d5c84e432b..318b4ec336 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,13 @@ +Sat Feb 21 19:18:26 2004 Soeren Sandmann + + Bug 132502 + + * gtk/gtkmenu.c (gtk_menu_motion_notify): Make sure we pop down + if we enter a non-selectable menu item. + + * gtk/gtkmenu.c (gtk_menu_leave_notify): Don't pop a submenu + when the user has left the item. + Sat Feb 21 17:57:35 2004 Soeren Sandmann * gtk/docs: Commit auto-generated changes diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index d5c84e432b..318b4ec336 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,13 @@ +Sat Feb 21 19:18:26 2004 Soeren Sandmann + + Bug 132502 + + * gtk/gtkmenu.c (gtk_menu_motion_notify): Make sure we pop down + if we enter a non-selectable menu item. + + * gtk/gtkmenu.c (gtk_menu_leave_notify): Don't pop a submenu + when the user has left the item. + Sat Feb 21 17:57:35 2004 Soeren Sandmann * gtk/docs: Commit auto-generated changes diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index d5c84e432b..318b4ec336 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,13 @@ +Sat Feb 21 19:18:26 2004 Soeren Sandmann + + Bug 132502 + + * gtk/gtkmenu.c (gtk_menu_motion_notify): Make sure we pop down + if we enter a non-selectable menu item. + + * gtk/gtkmenu.c (gtk_menu_leave_notify): Don't pop a submenu + when the user has left the item. + Sat Feb 21 17:57:35 2004 Soeren Sandmann * gtk/docs: Commit auto-generated changes diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index d5c84e432b..318b4ec336 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,13 @@ +Sat Feb 21 19:18:26 2004 Soeren Sandmann + + Bug 132502 + + * gtk/gtkmenu.c (gtk_menu_motion_notify): Make sure we pop down + if we enter a non-selectable menu item. + + * gtk/gtkmenu.c (gtk_menu_leave_notify): Don't pop a submenu + when the user has left the item. + Sat Feb 21 17:57:35 2004 Soeren Sandmann * gtk/docs: Commit auto-generated changes diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index 6bc690b025..c7b7d04df3 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -2609,7 +2609,6 @@ gtk_menu_motion_notify (GtkWidget *widget, */ menu_item = gtk_get_event_widget ((GdkEvent*) event); if (!menu_item || !GTK_IS_MENU_ITEM (menu_item) || - !_gtk_menu_item_is_selectable (menu_item) || !GTK_IS_MENU (menu_item->parent)) return FALSE; @@ -2623,6 +2622,15 @@ gtk_menu_motion_notify (GtkWidget *widget, if (gtk_menu_navigating_submenu (menu, event->x_root, event->y_root)) return TRUE; + /* Make sure we pop down if we enter a non-selectable menu item, so we + * don't show a submenu when the cursor is outside the stay-up triangle. + */ + if (!_gtk_menu_item_is_selectable (menu_item)) + { + gtk_menu_shell_deselect (menu_shell); + return FALSE; + } + if (need_enter) { /* The menu is now sensitive to enter events on its items, but @@ -2872,6 +2880,15 @@ gtk_menu_leave_notify (GtkWidget *widget, gtk_menu_set_submenu_navigation_region (menu, menu_item, event); return TRUE; } + else if (menu_item == menu_shell->active_menu_item) + { + /* We are leaving an active menu item with nonactive submenu. + * Deselect it so we don't surprise the user with by popping + * up a submenu _after_ he left the item. + */ + gtk_menu_shell_deselect (menu_shell); + return TRUE; + } } return GTK_WIDGET_CLASS (parent_class)->leave_notify_event (widget, event); -- 2.30.2